package model

import (
	"time"

	"go.mongodb.org/mongo-driver/bson/primitive"
)

type User struct {
	ID primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	// TODO: Fill your own fields
	//NickName     string        `bson:"nickName" json:"nickName"`
	//Number       string        `bson:"number" json:"number"`
	//PhoneNumber  string        `bson:"phoneNumber" json:"phoneNumber"`
	//Password     string        `bson:"password" json:"password"`
	//Status       bool          `bson:"status" json:"status"`
	UserCommon
	ChatSessions []ChatSession `bson:"chatSessions" json:"chatSessions"`
	UpdateAt     time.Time     `bson:"updateAt,omitempty" json:"updateAt,omitempty"`
	CreateAt     time.Time     `bson:"createAt,omitempty" json:"createAt,omitempty"`
}

type UserCommon struct {
	NickName    string `bson:"nickName" json:"nickName"`
	Number      string `bson:"number" json:"number"`
	PhoneNumber string `bson:"phoneNumber" json:"phoneNumber"`
	Password    string `bson:"password" json:"password"`
	Status      bool   `bson:"status" json:"status"`
}

type Message struct {
	Content string `bson:"content" json:"content"`
	Role    string `bson:"role" json:"role"`
}

// ChatSession 聊天会话
type ChatSession struct {
	Name     string    `bson:"name" json:"name"`
	Messages []Message `bson:"messages" json:"messages"`
}
